#ifndef INCLUDED_ENEMY_H
#define INCLUDED_ENEMY_H

#include <SGE.h>
using namespace SGE;

class Map;
class Character;

class Enemy
{
	public:
		Enemy();
		virtual ~Enemy();

		virtual void Load() = 0;
		virtual void Unload() = 0;
		virtual void Update(float deltaTime, Map& map, Character& character) = 0;
		virtual void Render(const SVector2& viewOffset) = 0;


		virtual void Kill() = 0;

		virtual SRect GetBoundingBox() const = 0;

		bool isActive() const {return mActive;}
		SCircle GetBoundingCircle() const	{ return SCircle(mPosition, 40.0f); } //magic # 40 is radius

	protected:
		SGE_Sprite mSprite;
		SVector2 mPosition;
		SVector2 mVelocity;
		bool mActive; 
		float mZigZagTimer;
};
#endif // #ifndef INCLUDED_Enemy_H